package com.dirox.plugins.ao.entities;

import net.java.ao.Entity;
import net.java.ao.ManyToMany;
import net.java.ao.schema.Default;
import net.java.ao.Preload;
import net.java.ao.schema.NotNull;
import java.util.Date;

@Preload
public interface Note extends Entity
{
	public static final int PRIORITY_MUST = 1;
	public static final int PRIORITY_COULD = 2;

	public static final int STATUS_DELETED = 0;
	public static final int STATUS_IN_USE = 1;
	
	// OWNER_ID
	@NotNull
	void setOwner(User owner);
	@NotNull
	User getOwner();

	// CONTENT
	String getContent();
	void setContent(String content);

	// STATUS
	boolean getStatus();
	@Default(value = "1")
	void setStatus(boolean status);

	// PRIORITY
	int getPriority();
	void setPriority(int priority);

	// CREATED_DATE
	@NotNull
	void setCreatedDate(Date createdDate);
	@NotNull
	Date getCreatedDate();
	
	@ManyToMany(value = TaggedIssue.class)
	public Issue[] getIssues();

	@ManyToMany(value = TaggedUser.class)
	public User[] getUsers();
	
	
}